package com.lyf.scm.plan.api.dto;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.lyf.scm.common.model.BaseSearchDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * @Author: huangtao
 * @Description:
 * @Date: create in 2020/7/30
 */
@Data
@ApiModel("其他渠道计划表")
public class SalesPlanOtherDTO extends BaseSearchDTO {

    @ApiModelProperty("主键id")
    private Long id;
    @ApiModelProperty("其他渠道销售计划单号")
    private String salesPlanOtherNo;

    @ApiModelProperty("计划活动编码")
    private String salesPlanActivityNo;

    @ApiModelProperty("计划状态（0：已取消，1：已确认）")
    private Integer status;

    @ApiModelProperty("计划类型")
    private String type;

    @ApiModelProperty("上次计划量")
    private BigDecimal lastPlanQty;

    @ApiModelProperty("上次确认量")
    private BigDecimal lastConfirmedQty;

    @ApiModelProperty("计划量")
    private BigDecimal planQty;

    @ApiModelProperty("确认量")
    private BigDecimal confirmedQty;

    @ApiModelProperty("每周开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date planStartDate;

    @ApiModelProperty("每周结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date planEndDate;

    @ApiModelProperty("商品类型编号")
    private String skuTypeCode;

    @ApiModelProperty("商品类型名称")
    private String skuTypeName;

    @ApiModelProperty("单位编码")
    private String unitCode;

    @ApiModelProperty("单位名称")
    private String unitName;

    @ApiModelProperty("全渠道")
    private String allChannelCode;

    @ApiModelProperty("渠道负责人确认量")
    private BigDecimal channelConfirmedQty;

    @ApiModelProperty("全渠道负责人确认量")
    private BigDecimal allchannelConfirmedQty;

    @ApiModelProperty("渠道负责人上次确认量")
    private BigDecimal channelLastConfirmedQty;

    @ApiModelProperty("全渠道负责人上次确认量")
    private BigDecimal allchannelLastConfirmedQty;

    @ApiModelProperty("最晚到货日期")
    private Date latestArrivalDate;

    @ApiModelProperty("最晚到货日期集合")
    private List<Date> latestArrivalDateList;

    @ApiModelProperty("计划类型（1-经销中心营销计划、2-云商营销计划、3-新开店计划（直营门店）、4-新开店计划（加盟门店）、5-新品铺货计划（直营门店）、6-新品铺货计划（云商）、7-新品铺货计划（APP）、8-新品铺货计划（经销中心））集合")
    private List<String> typeList;

    @ApiModelProperty("每周开始时间集合")
    private List<Date> planStartDateList;

    @ApiModelProperty("确认状态(0:未确认,1:已确认)")
    private Integer confirmedStatus;

    @ApiModelProperty("渠道负责人确认状态(0:未确认,1:已确认)")
    private Integer channelConfirmedStatus;

    @ApiModelProperty("全渠道负责人确认状态(0:未确认,1:已确认)")
    private Integer allchannelConfirmedStatus;

    @ApiModelProperty("单位类型")
    private Long unitType;

    @ApiModelProperty("分组参数")
    private String condition;

    @ApiModelProperty("其他渠道计划集合")
    private List<SalesPlanOtherDTO> salesPlanOtherList;

    @ApiModelProperty("优惠券数量")
    private BigDecimal couponQty;

    @ApiModelProperty("仓库")
    private String warehouse;

    @ApiModelProperty("供应商编码")
    private String supplierCode;

    @ApiModelProperty("供应商名称")
    private String supplierName;

    @ApiModelProperty("联系人")
    private String contacts;

    @ApiModelProperty("导入新开店计划备注")
    private String remark;

    @ApiModelProperty("直营渠道预约量")
    private BigDecimal forecastQty;

    @ApiModelProperty("实际收货量")
    private BigDecimal actualReceiveQty;

    @ApiModelProperty("实际销售量")
    private BigDecimal actualSalesQty;

    @ApiModelProperty("实际销售额")
    private BigDecimal actualSalesAmount;

    @ApiModelProperty("销售计划确认额")
    private BigDecimal confirmAmount;

    @ApiModelProperty("操作标识")
    private String opSign;

    @ApiModelProperty("推送采购单状态(0-待推送,1-成功,2-失败)")
    private Integer importPurchaseStatus;

    @ApiModelProperty("推送采购单状态(失败原因)")
    private String importPurchaseFail;

    @ApiModelProperty("计划周期")
    private String planDate;

    @ApiModelProperty("计划导入日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date planImportDate;
    @ApiModelProperty("营销计划取消状态")
    private Integer synStatus;

    @ApiModelProperty("区域code")
    private String areaCode;

    @ApiModelProperty("区域名称")
    private String area;
}
